﻿Imports Tohto.Base.CommonConst
Imports Tohto.Base.ComUtility
Imports FarPoint.Web
Imports AjaxControlToolkit
Imports Tohto.Web
Imports Tohto.Web.BLL
Imports Tohto.Base.Entity

Public Class KJ0010P01
    Inherits CMBasePage

#Region "定数"

    ''' <summary>
    ''' 画面名称
    ''' </summary>
    ''' <remarks></remarks>
    Private Const PAGE_NM As String = "工事チェッカー.csv"

    ''' <summary>
    ''' 戻る
    ''' </summary>
    ''' <remarks></remarks>
    Public goBack As String = String.Empty

    ''' <summary>
    ''' 画面ID
    ''' </summary>
    ''' <remarks></remarks>
    Private Const PAGE_ID As String = "KJ0010P01"

    ''' <summary>
    ''' 工事チェッカーテーブル
    ''' </summary>
    ''' <remarks></remarks>
    Private Const KOJITYEKA_TABLE As String = "_KOJITYEKA_TABLE"

    ''' <summary>
    ''' 工事チェッカースプレッドテーブル
    ''' </summary>
    ''' <remarks></remarks>
    Private Const M_DT_KOJI_CHECK As String = "_KOJICHECK_DT"

    ''' <summary>
    ''' 問合せ受付URL
    ''' </summary>
    ''' <remarks></remarks>
    Private Const TOIAWASE_URL As String = "../TA/TA0020P01.aspx?"

    ''' <summary>
    ''' 退室精算入力URL
    ''' </summary>
    ''' <remarks></remarks>
    Private Const SEISAN_URL As String = "../TS/TS0020P01.aspx?"

    ''' <summary>
    ''' メンテナンス契約詳細URL
    ''' </summary>
    ''' <remarks></remarks>
    Private Const MNT_KEIYAKU_URL As String = "../MT/MT0020P01.aspx?"

    ''' <summary>
    ''' 鍵発注URL
    ''' </summary>
    ''' <remarks></remarks>
    Private Const KAGI_HACCHU_URL As String = "../KG/KG0060P01.aspx?"

    ''' <summary>
    ''' 巡回入力URL
    ''' </summary>
    ''' <remarks></remarks>
    Private Const JUNKAI_URL As String = "../MT/MT0070P01.aspx?"

#End Region

#Region "フォームロードイベント"

    ''' <summary>
    ''' フォームロード
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        'ページ名称をセット
        DirectCast(Me.Master, MainMaster).pageName = PAGE_NM

        Try

            'エラーメッセージリストの初期化
            Call ErrMessageInit()

            If Not IsPostBack Then

                '画面の初期化
                Call PageInit()

                If MyBase.isGoBack Then
                    '遷移先から戻る場合
                    Call GoBackInputInit()

                    '伝票一覧データを取得します。
                    Dim dtKojiTyeka As DataTable = GetKojiCheckData()

                    '伝票一覧データ取得を呼び出し、結果を取得する。
                    Call GetKojiTyeka(dtKojiTyeka)

                End If

            End If

        Catch ex As Exception
            MyBase.ProcessException(ex, ComConst.EX_HANLDER_UI)
        End Try
    End Sub

#End Region

#Region "ボタンクリックイベント"

    ''' <summary>
    ''' 検索ボタンを押下する場合
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Protected Sub btn_search_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn_search.Click
        Try

            Call MyBase.ErrMsgAreaClear()

            '伝票一覧データを取得します。
            Dim dtKojiTyeka As DataTable = GetKojiCheckData()

            If dtKojiTyeka.Rows.Count = 0 Then

                'データテーブルにデータが存在しなかった場合はエラーとする。
                Call MyBase.SetMsgArea("CME0010")

                'スプレッドクリア
                Me.sp_kojityeka.ActiveSheetView.RowCount = 0
                Me.ddl_post_cd.Focus()

                Exit Sub
            Else

                '伝票一覧データ取得を呼び出し、結果を取得する。
                Call GetKojiTyeka(dtKojiTyeka)

                '画面を遷移する、ページの値をテーブルに保存する　
                Dim gamenValue As DataTable = SaveFormValue()
                Session.Add(ComConst.GAMEN_ID.KOUJI_ANKEN_NYURYOKU & KOJITYEKA_TABLE, gamenValue)
            End If

        Catch ex As Exception
            MyBase.ProcessException(ex, ComConst.EX_HANLDER_UI)
        End Try
    End Sub

    ''' <summary>
    ''' クリアボタンを押下する場合
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Protected Sub but_clear_Click(ByVal sender As Object, ByVal e As EventArgs) Handles but_clear.Click
        Try

            ''画面のクリア
            'Call PageClear()

            Response.Redirect(ComConst.GAMEN_ID.KOUJI_ANKEN_NYURYOKU & ".aspx?" & _
                                 ComConst.GAMEN_MODE & "=" & Server.UrlDecode(ComConst.MODE_NEW) & "&" & _
                                 ComConst.QUERY_KOJI_KB & "=04&" & _
                                 ComConst.QUERY_ARTICLE_CD & "=0000000004&" & _
                                 ComConst.QUERY_ROOM_CD & "=0000000001", False)

        Catch ex As Exception
            MyBase.ProcessException(ex, ComConst.EX_HANLDER_UI)
        End Try
    End Sub

    ''' <summary>
    ''' CSVボタンを押下する場合
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Protected Sub btn_csv_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn_csv.Click
        Try

            Call MyBase.ErrMsgAreaClear()

            'CSVファイルに出力する。
            Dim scmMain As ToolkitScriptManager = DirectCast(DirectCast(Me.Master, MainMaster).FindControl("scmMain"), ToolkitScriptManager)
            Dim needCsv As HiddenField = DirectCast(DirectCast(Me.Master, MainMaster).FindControl("hidNeedCsv"), HiddenField)
            Call scmMain.RegisterDataItem(needCsv, "true")

            Session.Add(ComConst.SEE_CSV_SPREADVIEW, Me.sp_kojityeka.ActiveSheetView)
            Session.Add(ComConst.SEE_CSV_FILENM, PAGE_NM)

        Catch ex As Exception
            MyBase.ProcessException(ex, ComConst.EX_HANLDER_UI)
        End Try
    End Sub

    ''' <summary>
    ''' 戻るボタンを押下する場合
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Protected Sub btn_return_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn_return.Click
        Try


        Catch ex As Exception
            MyBase.ProcessException(ex, ComConst.EX_HANLDER_UI)
        End Try
    End Sub

#End Region

#Region "スプレッドクリックイベント"

    ''' <summary>
    ''' 工事チェッカーの番号、工事名を押下する場合
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Protected Sub sp_kojityeka_ButtonCommand(ByVal sender As Object, ByVal e As FarPoint.Web.Spread.SpreadCommandEventArgs) Handles sp_kojityeka.ButtonCommand
        Try

            Dim intRow As Integer = DirectCast(e.CommandArgument, System.Drawing.Point).X    '行Index
            Dim intCol As Integer = DirectCast(e.CommandArgument, System.Drawing.Point).Y    '列Index
            Dim dtKojiTyeka As DataTable = CType(Session(ComConst.GAMEN_ID.KOJI_CHEKA & M_DT_KOJI_CHECK), DataTable)

            '番号リンクの場合
            If intCol = 2 Then

                Dim code As String = String.Empty    '番号

                'クリックすることで、リンク先画面に遷移する。リンク先は選択した工事区分により変わる。
                If Not IsDBNull(dtKojiTyeka.Rows(intRow).Item("TOIAWASE_NO")) Then
                    '問合せ受付画面に遷移する
                    code = Util.ObjToString(dtKojiTyeka.Rows(intRow).Item("TOIAWASE_NO"))
                    Response.Redirect(TOIAWASE_URL & _
                                      ComConst.GAMEN_MODE & "=" & Server.UrlDecode(ComConst.MODE_NOT_EDITABLE) & "&" & _
                                      "toiawase_no=" & Server.UrlDecode(code), False)
                ElseIf Not IsDBNull(dtKojiTyeka.Rows(intRow).Item("SEISAN_NO")) Then
                    '退室精算入力画面に遷移する
                    code = Util.ObjToString(dtKojiTyeka.Rows(intRow).Item("SEISAN_NO"))
                    Response.Redirect(SEISAN_URL & _
                                      ComConst.GAMEN_MODE & "=" & Server.UrlDecode(ComConst.MODE_NOT_EDITABLE) & "&" & _
                                      "seisan_no=" & Server.UrlDecode(code), False)
                ElseIf Not IsDBNull(dtKojiTyeka.Rows(intRow).Item("MNT_KEIYAKU_NO")) Then
                    'メンテナンス契約詳細画面に遷移する
                    code = Util.ObjToString(dtKojiTyeka.Rows(intRow).Item("MNT_KEIYAKU_NO"))
                    Response.Redirect(MNT_KEIYAKU_URL & _
                                      ComConst.GAMEN_MODE & "=" & Server.UrlDecode(ComConst.MODE_NOT_EDITABLE) & "&" & _
                                      "mnt_yotei_no=" & Server.UrlDecode(code), False)
                ElseIf Not IsDBNull(dtKojiTyeka.Rows(intRow).Item("KAGI_HACCHU_NO")) Then
                    '鍵発注画面に遷移する
                    code = Util.ObjToString(dtKojiTyeka.Rows(intRow).Item("KAGI_HACCHU_NO"))
                    Response.Redirect(KAGI_HACCHU_URL & _
                                      ComConst.GAMEN_MODE & "=" & Server.UrlDecode(ComConst.MODE_NOT_EDITABLE) & "&" & _
                                      "kagi_hacchu_no=" & Server.UrlDecode(code), False)

                ElseIf Not IsDBNull(dtKojiTyeka.Rows(intRow).Item("JUNKAI_NO")) Then
                    '巡回No.画面に遷移する
                    code = Util.ObjToString(dtKojiTyeka.Rows(intRow).Item("JUNKAI_NO"))
                    Response.Redirect(JUNKAI_URL & _
                                      ComConst.GAMEN_MODE & "=" & Server.UrlDecode(ComConst.MODE_NOT_EDITABLE) & "&" & _
                                      "junkai_no=" & Server.UrlDecode(code), False)
                End If

            ElseIf intCol = 4 Then
                '工事名リンクの場合
                Dim kojino As String = Util.ObjToString(dtKojiTyeka.Rows(intRow).Item("KOJI_NO"))   '工事番号
                Dim kojikb As String = Util.ObjToString(dtKojiTyeka.Rows(intRow).Item("KOJI_KB"))   '工事区分

                'クリックすることで、工事案件画面（KJ0020）に遷移する。
                Response.Redirect(ComConst.GAMEN_ID.KOUJI_ANKEN_NYURYOKU & ".aspx?" & _
                                  ComConst.GAMEN_MODE & "=" & Server.UrlDecode(ComConst.MODE_NOT_EDITABLE) & "&" & _
                                  ComConst.QUERY_KOJI_NO & "=" & Server.UrlDecode(kojino) & "&" & _
                                  ComConst.QUERY_KOJI_KB & "=" & Server.UrlDecode(kojikb), False)
            End If
        Catch ex As Exception
            MyBase.ProcessException(ex, ComConst.EX_HANLDER_UI)
        End Try
    End Sub

#End Region

#Region "ソメッド"

    ''' <summary>
    ''' エラーメッセージリストの初期化
    ''' </summary>
    ''' <remarks></remarks>
    Private Sub ErrMessageInit()

        '対象データがありません。
        arrErrorCdList.Add("CME0010")

        '開始日の入力データが終了日を超えています。
        arrErrorCdList.Add("CME0033")

        'クライアントにポープメッセージ共通をレジスト
        MyBase.RegistErrorCdToForm()
    End Sub

    ''' <summary>
    ''' 画面の初期化
    ''' </summary>
    ''' <remarks></remarks>
    Private Sub PageInit()

        '共通ボタンのリセット
        SetComBtnState(False, False, False, False, False)

        '端末情報の制御
        Call MyBase.SetTanmatuState(False, False)

        '戻る
        Call SetGoBackUrl(Request, PAGE_ID)

        '画面クリア
        Call PageClear()

        'コンボをセット
        Call SetCmbBox()

        '日付フォーカスイベントをセット
        Call MyBase.RegistHidukeScript(txt_yotei_dt_from, True)     '完了予定日(From)
        Call MyBase.RegistHidukeScript(txt_yotei_dt_to, True)       '完了予定日(To)
        Call MyBase.RegistHidukeScript(txt_kanryo_dt_from, True)    '工事完了日(From)
        Call MyBase.RegistHidukeScript(txt_kanryo_dt_to, True)      '工事完了日(To)
        Call MyBase.RegistHidukeScriptForFromTo(txt_yotei_dt_from, txt_yotei_dt_to)
        Call MyBase.RegistHidukeScriptForFromTo(txt_kanryo_dt_from, txt_kanryo_dt_to)

        'スプレッドＣＳＳ
        MyBase.SetSpreadDefaultStyle(Me.sp_kojityeka, True)
    End Sub

    ''' <summary>
    ''' 画面のクリア
    ''' </summary>
    ''' <remarks></remarks>
    Private Sub PageClear()

        'エラーメッセージ領域のクリア
        Call MyBase.ErrMsgAreaClear()

        Me.ddl_post_cd.SelectedValue = MyBase.sessionUserInfo.POST_CD                            '部署
        Me.ddl_kouji_st.SelectedValue = "00"                                                     '工事案件状態
        Me.txt_tanto_cd.Text = MyBase.sessionUserInfo.EMPLOYEE_CD                                '担当者cd
        Me.txt_tanto_nm.Text = MyBase.sessionUserInfo.NM_KANJI_CONNECTION                        '担当者
        Me.txt_yotei_dt_from.Text = String.Empty                                                 '完了予定日(開始)
        Me.txt_yotei_dt_to.Text = String.Empty                                                   '完了予定日(終了)
        Me.txt_kanryo_dt_from.Text = String.Empty                                                '工事完了日(開始)
        Me.txt_kanryo_dt_to.Text = String.Empty                                                  '工事完了日(終了)

        Me.sp_kojityeka.ActiveSheetView.RowCount = 0                                             '工事チェッカ

        Me.ddl_post_cd.Focus()                                                                   '部署

    End Sub

    ''' <summary>
    ''' コンボボックスをセット
    ''' </summary>
    ''' <remarks></remarks>
    Private Sub SetCmbBox()

        'コンボボックス初期化
        Call InitDropDownList(ComConst.CMB_BUSYO, ddl_post_cd)
        Call InitDropDownList(ComConst.CMB_KB, ddl_koji_kb, ComConst.KUBUN.KJ001)       '工事区分
        Call InitDropDownList(ComConst.CMB_KB, ddl_kouji_st, ComConst.KUBUN.KJ007)      '工事案件状態

    End Sub

    ''' <summary>
    ''' 一覧データ取得を呼び出し、結果を取得する。
    ''' </summary>
    ''' <remarks></remarks>
    Private Sub GetKojiTyeka(ByVal dtKojiTyeka As DataTable)

        sp_kojityeka.Rows.Count = dtKojiTyeka.Rows.Count

        '工事進捗スプレッドに値を与える
        For i As Integer = 0 To dtKojiTyeka.Rows.Count - 1

            Dim spInteger As Spread.IntegerCellType = Nothing
            Dim spNumberFormat As New System.Globalization.NumberFormatInfo
            spNumberFormat.NumberDecimalDigits = 3
            spNumberFormat.NumberDecimalSeparator = ","

            With dtKojiTyeka.Rows(i)

                Me.sp_kojityeka.Cells(i, 0).Value = .Item("KOJI_ST_NM")           '工事状態名
                Me.sp_kojityeka.Cells(i, 1).Value = .Item("KOJI_KB_NM")           '工事区分名

                Dim spButtonLink As New Spread.ButtonCellType
                spButtonLink.ButtonType = Spread.ButtonType.LinkButton

                If Not IsDBNull(.Item("TOIAWASE_NO")) Then
                    spButtonLink.Text = Util.ObjToString(.Item("TOIAWASE_NO"))    '問合せの番号
                ElseIf Not IsDBNull(.Item("SEISAN_NO")) Then
                    spButtonLink.Text = Util.ObjToString(.Item("SEISAN_NO"))      '退室精算の番号
                ElseIf Not IsDBNull(.Item("MNT_KEIYAKU_NO")) Then
                    spButtonLink.Text = Util.ObjToString(.Item("MNT_KEIYAKU_NO")) 'メンテナンスの番号
                ElseIf Not IsDBNull(.Item("KAGI_HACCHU_NO")) Then
                    spButtonLink.Text = Util.ObjToString(.Item("KAGI_HACCHU_NO")) '鍵交換の番号
                ElseIf Not IsDBNull(.Item("JUNKAI_NO")) Then
                    spButtonLink.Text = Util.ObjToString(.Item("JUNKAI_NO"))      '巡回の番号
                Else
                    spButtonLink.Text = String.Empty
                End If
                Me.sp_kojityeka.ActiveSheetView.Cells(i, 2).CellType = spButtonLink

                Me.sp_kojityeka.Cells(i, 3).Value = .Item("KOJI_NO")              '工事No.

                spButtonLink = New Spread.ButtonCellType
                spButtonLink.ButtonType = Spread.ButtonType.LinkButton
                spButtonLink.Text = Util.ObjToString(.Item("KOJI_NM"))            '工事名
                Me.sp_kojityeka.ActiveSheetView.Cells(i, 4).CellType = spButtonLink

                Me.sp_kojityeka.Cells(i, 5).Value = .Item("ARTICLE_CD")           '物件CD
                Me.sp_kojityeka.Cells(i, 6).Value = .Item("ARTICLE_NM")           '物件
                Me.sp_kojityeka.Cells(i, 7).Value = .Item("ROOM_CD")              '部屋CD
                Me.sp_kojityeka.Cells(i, 8).Value = .Item("ROOM_NM")              '部屋名
                Me.sp_kojityeka.Cells(i, 9).Value = .Item("FIRST_TEHAI_DT")       '初回手配日
                Me.sp_kojityeka.Cells(i, 10).Value = .Item("LAST_TEHAI_DT")       '最終手配日
                Me.sp_kojityeka.Cells(i, 11).Value = .Item("HACCHU_DT")           '発注日
                Me.sp_kojityeka.Cells(i, 12).Value = .Item("KANRYO_DT")           '工事完了日

                spInteger = New Spread.IntegerCellType
                spInteger.NumberFormat = spNumberFormat
                Me.sp_kojityeka.Cells(i, 13).CellType = spInteger
                Me.sp_kojityeka.Cells(i, 14).CellType = spInteger
                Me.sp_kojityeka.Cells(i, 13).Value = .Item("HACCHU_KINGAKU")      '発注額（税抜）
                Me.sp_kojityeka.Cells(i, 14).Value = .Item("SEISAN_KINGAKU")      '精算額(税抜)

                Me.sp_kojityeka.Cells(i, 15).Value = .Item("CONTRA_CUST_CD")      '契約者CD
                Me.sp_kojityeka.Cells(i, 16).Value = .Item("CONTRA_CUST_NM")      '契約者名
                Me.sp_kojityeka.Cells(i, 17).Value = .Item("OWNER_CUST_CD")       'オーナーCD
                Me.sp_kojityeka.Cells(i, 18).Value = .Item("OWNER_CUST_NM")       'オーナー名

            End With
        Next

    End Sub

    ''' <summary>
    ''' 戻る場合、画面の初期化
    ''' </summary>
    ''' <remarks></remarks>
    Private Sub GoBackInputInit()

        Dim dt As DataTable = CType(Session(ComConst.GAMEN_ID.KOUJI_ANKEN_NYURYOKU & KOJITYEKA_TABLE), DataTable)

        With dt.Rows(0)

            Me.ddl_post_cd.SelectedValue = Util.ObjToString(.Item("POST_CD"))                                  '部署
            Me.ddl_koji_kb.SelectedValue = Util.ObjToString(.Item("KOJI_KB"))                                  '工事区分
            Me.ddl_kouji_st.SelectedValue = Util.ObjToString(.Item("KOUJI_ST"))                                '工事案件状態
            Me.txt_tanto_cd.Text = Util.ObjToString(.Item("TANTO_CD"))                                         '担当者cd
            Me.txt_tanto_nm.Text = Util.ObjToString(.Item("TANTO_NM"))                                         '担当者
            Me.txt_yotei_dt_from.Text = Util.ObjToString(.Item("YOTEI_DT_FROM"))                               '完了予定日(開始)
            Me.txt_yotei_dt_to.Text = Util.ObjToString(.Item("YOTEI_DT_TO"))                                   '完了予定日(終了)
            Me.txt_kanryo_dt_from.Text = Util.ObjToString(.Item("KANRYO_DT_FROM"))                             '工事完了日(開始)
            Me.txt_kanryo_dt_to.Text = Util.ObjToString(.Item("KANRYO_DT_TO"))                                 '工事完了日(終了)

        End With
    End Sub

    ''' <summary>
    ''' 保存画面の値
    ''' </summary>
    ''' <remarks></remarks>
    Private Function SaveFormValue() As DataTable

        Dim dt As New DataTable

        dt.Columns.Add("POST_CD", Type.GetType("System.String"))                   '部署
        dt.Columns.Add("KOJI_KB", Type.GetType("System.String"))                   '工事区分
        dt.Columns.Add("KOUJI_ST", Type.GetType("System.String"))                  '工事案件状態
        dt.Columns.Add("TANTO_CD", Type.GetType("System.String"))                  '担当者cd
        dt.Columns.Add("TANTO_NM", Type.GetType("System.String"))                  '担当者
        dt.Columns.Add("YOTEI_DT_FROM", Type.GetType("System.String"))             '完了予定日(開始)
        dt.Columns.Add("YOTEI_DT_TO", Type.GetType("System.String"))               '完了予定日(終了)
        dt.Columns.Add("KANRYO_DT_FROM", Type.GetType("System.String"))            '工事完了日(開始)
        dt.Columns.Add("KANRYO_DT_TO", Type.GetType("System.String"))              '工事完了日(終了)

        Dim dr As DataRow = dt.NewRow
        dr("POST_CD") = Me.ddl_post_cd.SelectedValue
        dr("KOJI_KB") = Me.ddl_koji_kb.SelectedValue
        dr("KOUJI_ST") = Me.ddl_kouji_st.SelectedValue
        dr("TANTO_CD") = Me.txt_tanto_cd.Text
        dr("TANTO_NM") = Me.txt_tanto_nm.Text
        dr("YOTEI_DT_FROM") = Me.txt_yotei_dt_from.Text
        dr("YOTEI_DT_TO") = Me.txt_yotei_dt_to.Text
        dr("KANRYO_DT_FROM") = Me.txt_kanryo_dt_from.Text
        dr("KANRYO_DT_TO") = Me.txt_kanryo_dt_to.Text
        dt.Rows.Add(dr)

        Return dt
    End Function

    ''' <summary>
    ''' 工事チェッカーデータテーブル
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Private Function GetKojiCheckData() As DataTable
        Dim kj0010b01 As New KJ0010B01

        Dim retDs As DataSet = kj0010b01.Fetch_LIST(Me.ddl_post_cd.SelectedValue, _
                                                    Me.txt_tanto_cd.Text, _
                                                    Me.ddl_koji_kb.SelectedValue, _
                                                    Me.ddl_kouji_st.SelectedValue, _
                                                    Me.txt_yotei_dt_from.Text, _
                                                    Me.txt_yotei_dt_to.Text, _
                                                    Me.txt_kanryo_dt_from.Text, _
                                                    Me.txt_kanryo_dt_to.Text, _
                                                    errInfo)

        Session.Add(ComConst.GAMEN_ID.KOJI_CHEKA & M_DT_KOJI_CHECK, retDs.Tables("O_CU_DATA"))
        Return retDs.Tables("O_CU_DATA")
    End Function

#End Region

End Class